package com.bsg.upm.dao;

import org.apache.ibatis.annotations.Param;

import com.bsg.upm.entity.TaskEntity;

/**
 * 任务接口
 * 
 * @author HCK
 *
 */
public interface TaskDao extends CrudDao<TaskEntity> {

	// /**
	// * 获取正在执行的任务集合
	// *
	// * @return
	// */
	// List<TaskEntity> listRunning();

	/**
	 * 获取指定对象的最新任务
	 * 
	 * @param objId
	 *            任务对象编码
	 * @return 任务对象
	 */
	TaskEntity getLatestTaskByObjId(String objId);

	/**
	 * 获取指定对象的最新任务
	 * 
	 * @param objId
	 *            任务对象编码
	 * @param actionType
	 *            任务动作类型
	 * @return 任务对象
	 */
	TaskEntity getLatestTaskByObjIdAndActionType(@Param("objId") String objId, @Param("actionType") String actionType);

	/**
	 * 保存任务所关联的子任务信息
	 * 
	 * @param task
	 *            任务对象
	 * @return 保存条数
	 */
	int saveRelativeSubTask(TaskEntity task);

	/**
	 * 更新任务的结束时间和状态和回执信息
	 * 
	 * @param task
	 *            任务对象
	 * @return 更新条数
	 */
	int updateToEnd(TaskEntity task);

}
